--- id: TASK-005 title: 'Canvas measures tabs/CJK/emoji as rune count, not display cells' status: "\U0001F7E6 Backlog" assignee: [] created_date: '2026-06-28 18:38' updated_date: '2026-06-30 00:22' labels: - bug - release-2 dependencies: [] priority: low ordinal: 5000 --- ## Description wrapLine and visualColOf measure in runes, not terminal display width. A \t (KeyTab) or wide rune (CJK/emoji) wraps and positions the cursor cell by the wrong column. Pre-existing approach, now load-bearing for the canvas layout. Will surface on tab-indented code blocks or CJK text. Use a display-width (e.g. go-runewidth / uniseg) measure for wrapping + cursor placement. ## Acceptance Criteria - [ ] #1 wrapping and cursor placement use display-cell width